Hallo Leute.
Ich habe auf der H.A.T.Z. begonnen einen TFNS-Server in RespeQt einzubauen.
Heute kann ich stolz die erste Version präsentieren: https://github.com/josch1710/RespeQt/releases/tag/r5.4.1RC1
Bitte mit diesem Release vorsichtig sein und keine wertvollen Dateien benutzen. Ich hoffe, es sind keine großen Fehler mehr drin, aber ich kann noch nicht garantieren, dass alles reibungslos von statten geht.
Der Server funktioniert so, dass jedes gerade gemountete Verzeichnis mit seinem Namen in einem virtuellen Dateisystem sichtbar ist. Hat man z.b. die Verzeichnisse A und B gemountet, wird dies als /A und /B aufgelistet, wenn man sich mit einem Client verbindet.
Ist ein Client verbunden, wird unten rechts in der Statuszeile das Netzwerksymbol aktiviert, bis die letzte Verbindung wieder geschlossen wurde.
Ich konnte erfolgreich ein Programm vom Fujinet aus starten. Wahrscheinlich findet ihr noch Probleme 😉.
Viel Spass.
Ach ja, und bitte nicht scheuen, Fehler oder Probleme zu melden. Hier, per PN oder auf Github ein Issue anlegen.
Danke.
Ich habe nicht verstanden, wie man die TNFS-Unterstützung aktiviert :?
Die Unterstützung ist immer an, Du musst aber mind. ein Verzeichnis mounten. Alle gemounten Verzeichnisse sind dann unter einem gemeinsamen Wurzelverzeichnis in Fujinet erreichbar.
Aber ich verstehe nicht, wo ich den Namen des TNFS-Servers eingeben soll, z. B. tnfs.fujinet.online oder ist das für einen lokalen Server?
Ich sehe, dass ich das TNFS-Symbol deaktiviert habe, wenn ich Ihren Anweisungen folge.

ascrnet schrieb:
Aber ich verstehe nicht, wo ich den Namen des TNFS-Servers eingeben soll, z. B. tnfs.fujinet.online oder ist das für einen lokalen Server?
Ich sehe, dass ich das TNFS-Symbol deaktiviert habe, wenn ich Ihren Anweisungen folge.
red.PNG
Ach so. Einfach die IP-Adresse Deines Rechners angeben. Wenn Dein Router eine DNS-Namensauflösung macht, dann kann man auch den lokalen Namen nehmen, etwas Rechner.local oder Rechner.speedport.ip etc.
Ich sehe in der Benutzeroberfläche nicht, wo ich den Namen des Servers, mit dem ich mich verbinden will, eingeben kann, ich verwende Win10. :?
ascrnet schrieb:
Ich sehe in der Benutzeroberfläche nicht, wo ich den Namen des Servers, mit dem ich mich verbinden will, eingeben kann, ich verwende Win10. :?
Die IP findet man in den Windows-Einstellungen unter Netzwerk.
Danke für die Hilfe, es wurde mir erklärt, dass es serverseitig und nicht clientseitig ist, wie ich dachte. 😉
ascrnet schrieb:
Danke für die Hilfe, es wurde mir erklärt, dass es serverseitig und nicht clientseitig ist, wie ich dachte. 😉
Ja klar, da haben wir wohl aneinander vorbei geredet. 😀
Ich habe eine Frage, hast du es schon auf QT6 umgestellt oder benutzt es immer noch QT5?
Ich arbeite daran, die spanische Sprache zu aktualisieren und würde es gerne in Linux neu kompilieren, um zu sehen, wie einige Korrekturen und die Übersetzung der neuen Funktionen sind. 😉
Ein weiterer Punkt, den ich bereits sehen TNSF auf meinem Fujinet aktiviert, aber es lädt keine .atr, die Frage ist, welches Laufwerk sollte ich wählen, um meinen Ordner zu mounten oder gibt es eine andere Anforderung? :?
Nein, ich habe zu Qt6 noch keine konkreten Pläne. Wir arbeiten aktuell sogar noch auf 5.6.3, da dies die letzte Version mit XP-Unterstützung ist. Plan ist erstmal, Bugs und Probleme aufzuräumen und dann zu 5.15 zu migrieren.
Zu TNFS: Welches Laufwerk Du für Verzeichnisse Du verwendest, ist für TNFS erstmal völlig egal. Da die Konfiguration ja gespeichert wird, würde ich hintere Laufwerke benutzen, damit das nicht mit einer normalen Benutzung via SIO in Konflikt steht.
JoSch schrieb:
Nein, ich habe zu Qt6 noch keine konkreten Pläne. Wir arbeiten aktuell sogar noch auf 5.6.3, da dies die letzte Version mit XP-Unterstützung ist. Plan ist erstmal, Bugs und Probleme aufzuräumen und dann zu 5.15 zu migrieren.
verstanden, ich sehe, dass Sie qmake zu cmake geändert haben und ich habe es geschafft, es in Debian ohne Probleme zu kompilieren, um zu sehen, wie die Aktualisierung der spanischen Sprache ist. 😀
JoSch schrieb:
Zu TNFS: Welches Laufwerk Du für Verzeichnisse Du verwendest, ist für TNFS erstmal völlig egal. Da die Konfiguration ja gespeichert wird, würde ich hintere Laufwerke benutzen, damit das nicht mit einer normalen Benutzung via SIO in Konflikt steht.
Es schlägt immer noch fehl, z.B. lädt DOS 2.0s ein paar Sektoren und hält dann an, bis das Wort READY erscheint. Offensichtlich wird DOS.SYS nicht richtig geladen.
Ich hänge das Protokoll an, falls es Ihnen etwas sagt.
Incoming command 0x "0
Incoming command 0x "17
Incoming command 0x "18
Incoming command 0x "12
Incoming command 0x "17
Incoming command 0x "16
Incoming command 0x "18
Incoming command 0x "12
Incoming command 0x "17
Incoming command 0x "16
Incoming command 0x "18
Incoming command 0x "12
Incoming command 0x "17
Incoming command 0x "18 [x14]
Incoming command 0x "12
Incoming command 0x "17
Incoming command 0x "16
Incoming command 0x "18 [x9]
Incoming command 0x "12
Incoming command 0x "17
Incoming command 0x "16
Incoming command 0x "18
Incoming command 0x "12
Incoming command 0x "17
Incoming command 0x "16
Incoming command 0x "18
Incoming command 0x "12
Incoming command 0x "17
Incoming command 0x "16
Incoming command 0x "18
Incoming command 0x "16
Incoming command 0x "18
Incoming command 0x "12
Incoming command 0x "17
Incoming command 0x "18 [x14]
Incoming command 0x "12
Incoming command 0x "24
Incoming command 0x "29
Incoming command 0x "25
Incoming command 0x "24
Incoming command 0x "25
Incoming command 0x "24
Incoming command 0x "25
Incoming command 0x "24
Incoming command 0x "25
Incoming command 0x "21
Incoming command 0x "24
Incoming command 0x "21 [x10]
Incoming command 0x "24
Incoming command 0x "25
Drückst Du OPTION beim Start? Hast Du beim Ready-Prompt schon mal "DOS" probiert?
JoSch schrieb:
Drückst Du OPTION beim Start? Hast Du beim Ready-Prompt schon mal "DOS" probiert?
Sicher, aber das ist nicht das Problem. Bei anderen Diskettenbetriebssystemen werden nur 2 bis 3 Sektoren gelesen und die Übertragung eingefroren. Das passiert bei DOS 2.5, MYDOS, MYPICODOS und SMARTDOS. :?
Damit hatte ich bisher keine Probleme.
Hast Du Highspeed an? Welche Handshake-Methode ist eingestellt?
JoSch schrieb:
Damit hatte ich bisher keine Probleme.
Hast Du Highspeed an? Welche Handshake-Methode ist eingestellt?
in RESPEQT, soweit ich das verstanden habe, spielt das keine große Rolle. Aber ich zeige Ihnen trotzdem, was ich habe.

in FUJINET :

Wenn Du sonst Fujinet benutzt, z.B. mit dem Abbucserver, dann hast Du keine Probleme mit Booten von ATRs?
JoSch schrieb:
Wenn Du sonst Fujinet benutzt, z.B. mit dem Abbucserver, dann hast Du keine Probleme mit Booten von ATRs?
Ich habe keine Probleme mit TFNS-Servern oder dem Lesen von .atr von der MicroSD-Karte. Ich verwende einen ATARI 800XL NTSC ohne Modifikationen. 😉
Ein weiterer punkt, ich habe bereits die spanische Sprache für diese version aktualisiert, ich schickte Ihnen ein PR in der Github 😉
ascrnet schrieb:
JoSch schrieb:
Wenn Du sonst Fujinet benutzt, z.B. mit dem Abbucserver, dann hast Du keine Probleme mit Booten von ATRs?
Ich habe keine Probleme mit TFNS-Servern oder dem Lesen von .atr von der MicroSD-Karte. Ich verwende einen ATARI 800XL NTSC ohne Modifikationen. 😉
Ein weiterer punkt, ich habe bereits die spanische Sprache für diese version aktualisiert, ich schickte Ihnen ein PR in der Github 😉
Allerbesten Dank für die Übersetzung.
Ich bin jetzt überfragt, wieso da ein Problem bei Dir auftritt. Mit versch. Computern habe ich keine Probleme mit Fujinet und ein hilfreicher Benutzer im Fujinet-Discord hatte auch keine Probleme.
Ich baue vielleicht noch weitere Debug-Nachrichten ein und schicke Dir eine passende Version (Windows?). Ich weiß jetzt nur nicht, wann ich dazu komme.
PS: Wir sind hier generell eher per "Du" 😉
JoSch schrieb:
Allerbesten Dank für die Übersetzung.
Gern geschehen, ich übersetze immer, seit ASPEQT vor Jahren im Atariage-Forum geboren wurde. 😉
JoSch schrieb:
Ich bin jetzt überfragt, wieso da ein Problem bei Dir auftritt. Mit versch. Computern habe ich keine Probleme mit Fujinet und ein hilfreicher Benutzer im Fujinet-Discord hatte auch keine Probleme.
Ich verstehe auch nicht, warum es mit meinem FUJINET Version 1.5 mit der neuesten Firmware 1.4.0 nicht funktioniert, obwohl ich die Verzeichnisse und Unterverzeichnisse angezeigt habe und es auch .ATX und .XEX ohne Probleme lädt, aber es fängt nicht an, mit 600 Baud .CAS und .ATR richtig zu laden. :?
JoSch schrieb:
Ich baue vielleicht noch weitere Debug-Nachrichten ein und schicke Dir eine passende Version (Windows?). Ich weiß jetzt nur nicht, wann ich dazu komme.
Sowohl unter Windows als auch unter Linux habe ich das gleiche Problem. Unter Linux habe ich die Entwicklungsumgebung bereit, aber ich weiß nicht, wie ich den Debug-Modus aktivieren kann, damit die „qDebug()“-Meldungen in der Konsole erscheinen. :?
Eigentlich sieht Du die Meldungen ja. Ich dachte mehr daran, mehr Infos auszuspucken. Ich könnte Dir dann eine passende Version kompilieren. Welches Betriebssystem würdest du gerne haben?
JoSch schrieb:
Eigentlich sieht Du die Meldungen ja. Ich dachte mehr daran, mehr Infos auszuspucken. Ich könnte Dir dann eine passende Version kompilieren. Welches Betriebssystem würdest du gerne haben?
wenn Sie können, wäre es gut für Windows 10 sein, wie es ist, was ich immer auf der Hand haben. 😉
Ich habe mal etwas zusammengehackt. Im Zip ist erstmal nur die Exe-Datei. Mach am besten eine Kopie Deines aktuellen RespeQt-Verzeichnisses und dann die Exe darein. Die Kommandos werden jetzt mit Namen mit ausgegeben. Ich habe jetzt noch keine Ausgabe der Rückgaben eingebaut. Aber da der TNFS-Code eh eigenwillig ist, was die Interpretation der TNFS-Spezifikation ist, weiß ich gerade nicht wie sinnvoll das ganze ist.
In dieser Version ist auch eine ungetestete Version zur Unterstützung von TCP-Verbindungen.
JoSch schrieb:
Ich habe mal etwas zusammengehackt. Im Zip ist erstmal nur die Exe-Datei. Mach am besten eine Kopie Deines aktuellen RespeQt-Verzeichnisses und dann die Exe darein. Die Kommandos werden jetzt mit Namen mit ausgegeben. Ich habe jetzt noch keine Ausgabe der Rückgaben eingebaut. Aber da der TNFS-Code eh eigenwillig ist, was die Interpretation der TNFS-Spezifikation ist, weiß ich gerade nicht wie sinnvoll das ganze ist.
In dieser Version ist auch eine ungetestete Version zur Unterstützung von TCP-Verbindungen.
danke, aber die Anwendung funktioniert nicht, weil die richtigen Bibliotheken mit der Endung „d“ für Debug fehlen. Ich habe mehrere aus dem Internet heruntergeladen, aber sie sind nicht kompatibel. 😞

Ja, sorry. Du hast natürlich recht. Ich habe RespeQt nochmal als Releaseversion kompiliert und angehängt.
JoSch schrieb:
Ja, sorry. Du hast natürlich recht. Ich habe RespeQt nochmal als Releaseversion kompiliert und angehängt.
danke, aber es funktioniert nicht, ich denke, Sie sollten die DLLs, die Sie verwenden, in dieser Version enthalten.

Die haben sich ja eigentlich nicht geändert. Ist wahrscheinlich wieder irgendwas mit dem Deployment etc.
Ich habe jetzt mal eine Komplettversion drahgehängt. Wenn die nicht funktioniert, dann weiß ich auch nicht 😉
JoSch schrieb:
Ich habe jetzt mal eine Komplettversion drahgehängt. Wenn die nicht funktioniert, dann weiß ich auch nicht 😉
diese Version, wenn sie ohne Probleme funktioniert, füge ich die Tests bei. Wo „....“ erscheint, bedeutet dies, dass es unendlich oft wiederholt wurde. 😉
Mydos 4.5d.atr
Incoming command 0x "24" " (Stat File)
Incoming command 0x "29" " (Open File)
Incoming command 0x "25" " (Seek File)
Incoming command 0x "24" " (Stat File)
Incoming command 0x "25" " (Seek File)
Incoming command 0x "24" " (Stat File)
Incoming command 0x "25" " (Seek File)
Incoming command 0x "24" " (Stat File)
Incoming command 0x "25" " (Seek File)
Incoming command 0x "21" " (Read Block)
Incoming command 0x "24" " (Stat File)
Incoming command 0x "21" " (Read Block)
Incoming command 0x "24" " (Stat File)
Dos 2.0s.atr
Incoming command 0x "24" " (Stat File)
Incoming command 0x "29" " (Open File)
Incoming command 0x "25" " (Seek File)
Incoming command 0x "24" " (Stat File)
Incoming command 0x "25" " (Seek File)
Incoming command 0x "24" " (Stat File)
Incoming command 0x "25" " (Seek File)
Incoming command 0x "24" " (Stat File)
Incoming command 0x "25" " (Seek File)
Incoming command 0x "21" " (Read Block)
Incoming command 0x "24" " (Stat File)
Incoming command 0x "21" " (Read Block)
Incoming command 0x "21" " (Read Block) [x2]
Incoming command 0x "21" " (Read Block) [x3]
Incoming command 0x "21" " (Read Block) [x4]
Incoming command 0x "21" " (Read Block) [x5]
Incoming command 0x "21" " (Read Block) [x6]
Incoming command 0x "21" " (Read Block) [x7]
Incoming command 0x "21" " (Read Block) [x8]
Incoming command 0x "21" " (Read Block) [x9]
Incoming command 0x "21" " (Read Block) [x10]
Incoming command 0x "24" " (Stat File)
Incoming command 0x "25" " (Seek File)
Incoming command 0x "21" " (Read Block)
Incoming command 0x "21" " (Read Block) [x2]
Incoming command 0x "21" " (Read Block) [x3]
Incoming command 0x "21" " (Read Block) [x4]
Incoming command 0x "21" " (Read Block) [x5]
Incoming command 0x "21" " (Read Block) [x6]
Incoming command 0x "21" " (Read Block) [x7]
Incoming command 0x "21" " (Read Block) [x8]
Incoming command 0x "21" " (Read Block) [x9]
Incoming command 0x "21" " (Read Block) [x10]
....
Incoming command 0x "21" " (Read Block) [xxxx5]
SmartDOS 6.1D.atr
Incoming command 0x "24" " (Stat File)
Incoming command 0x "29" " (Open File)
Incoming command 0x "25" " (Seek File)
Incoming command 0x "24" " (Stat File)
Incoming command 0x "25" " (Seek File)
Incoming command 0x "24" " (Stat File)
Incoming command 0x "25" " (Seek File)
Incoming command 0x "24" " (Stat File)
Incoming command 0x "25" " (Seek File)
Incoming command 0x "21" " (Read Block)
Incoming command 0x "24" " (Stat File)
Incoming command 0x "21" " (Read Block)
Incoming command 0x "21" " (Read Block) [x2]
Incoming command 0x "21" " (Read Block) [x3]
Incoming command 0x "21" " (Read Block) [x4]
Incoming command 0x "21" " (Read Block) [x5]
Incoming command 0x "21" " (Read Block) [x6]
Incoming command 0x "21" " (Read Block) [x7]
Incoming command 0x "21" " (Read Block) [x8]
Incoming command 0x "21" " (Read Block) [x9]
Incoming command 0x "24" " (Stat File)
Incoming command 0x "25" " (Seek File)
Incoming command 0x "21" " (Read Block)
Incoming command 0x "24" " (Stat File)
Incoming command 0x "25" " (Seek File)
Incoming command 0x "21" " (Read Block)
Incoming command 0x "21" " (Read Block) [x2]
Incoming command 0x "21" " (Read Block) [x3]
Incoming command 0x "21" " (Read Block) [x4]
Incoming command 0x "21" " (Read Block) [x5]
Incoming command 0x "21" " (Read Block) [x6]
Incoming command 0x "21" " (Read Block) [x7]
Incoming command 0x "21" " (Read Block) [x8]
Incoming command 0x "21" " (Read Block) [x9]
Incoming command 0x "21" " (Read Block) [x10]
....
Incoming command 0x "21" " (Read Block) [xxxxx7]
alle atrs werden problemlos in altirra und von der microsd-karte des fujinet geladen.
Ich würde hier auf ein Timingproblem tippen. Es gab in Fujinet, glaube ich, eine Methode, um ein Log zu schreiben. Vielleicht kannst Du das mal anschalten und wir können mal drauf schauen, ob wir das Problem entdecken.
JoSch schrieb:
Ich würde hier auf ein Timingproblem tippen. Es gab in Fujinet, glaube ich, eine Methode, um ein Log zu schreiben. Vielleicht kannst Du das mal anschalten und wir können mal drauf schauen, ob wir das Problem entdecken.
Ich glaube, das Problem ist ernster, es liegt nicht an meinem fujinet. Ich benutze den fujinet-Emulator in altirra und habe etwas sehr ähnliches wie das, was mir auf dem echten ATARI passiert.

Sehe ich das korrekt: Altirra hat jetzt einen Fujinet an Bord und der verbindet sich mit einem beliebigen Server?
Wenn das so ist, macht das das Debuggen natürlich einfacher. Ich schaue mir das nächste Woche dann mal an.
Danke für den Hinweis.
JoSch schrieb:
Sehe ich das korrekt: Altirra hat jetzt einen Fujinet an Bord und der verbindet sich mit einem beliebigen Server?
Das stimmt, ich gebe Ihnen eine Schritt-für-Schritt-Anleitung.
https://github.com/a8jan/fujinet-pc-launcher/blob/master/Install.md#4-connect-altirra-with-fujinet
JoSch schrieb:
Wenn das so ist, macht das das Debuggen natürlich einfacher. Ich schaue mir das nächste Woche dann mal an.
Danke für den Hinweis.
es ist keine überstürzte Sache 😉
@ascrnet: Erstmal vielen Dank für diese tolle Fujinet-Brücke. Das macht Debuggen soviel einfacher 😉
Der Fehler war in File Seek, dort habe ich den einzigen Parameter mit Vorzeichen übersehen und das musste ich mir das so zusammenbasteln, damit es funktioniert. Außerdem habe SEEK_END falsch interpretiert und das wurde auch noch korrigiert.
TNFS über TCP funktioniert jetzt auch noch.
Daher habe ich dann eine neue Version gebaut: https://github.com/josch1710/RespeQt/releases/tag/r5.4.1RC2
Viel Spass.
JoSch schrieb:
Der Fehler war in File Seek, dort habe ich den einzigen Parameter mit Vorzeichen übersehen und das musste ich mir das so zusammenbasteln, damit es funktioniert. Außerdem habe SEEK_END falsch interpretiert und das wurde auch noch korrigiert.
TNFS über TCP funktioniert jetzt auch noch.
vielen Dank für die Lösung der Probleme, ich testete sowohl als echte Hardware und in den Emulator und immer noch nicht laden Mydos 4.5d ist die einzige, die alle anderen ohne Probleme geladen scheitert.
Test vom Atari :
Incoming command 0x "24" " (Stat File)
Incoming command 0x "29" " (Open File)
Incoming command 0x "25" " (Seek File)
Incoming command 0x "24" " (Stat File)
Incoming command 0x "25" " (Seek File)
Incoming command 0x "24" " (Stat File)
Incoming command 0x "25" " (Seek File)
Incoming command 0x "24" " (Stat File)
Incoming command 0x "25" " (Seek File)
Incoming command 0x "21" " (Read Block)
Incoming command 0x "24" " (Stat File)
Incoming command 0x "21" " (Read Block)
vom Emulator aus versuchen:

Ein weiteres Detail: Die Sprache wurde nicht aktualisiert. :?

das vorläufig.
Ich hatte mit Turbodos und automatisch geladenen Turbobasic probiert, da hat es funktioniert. Ich habe Dos aufgerufen , Directory angezeigt, eine Datei auf E: kopiert. Keine Probleme.
Muss ich wohl versch. Bootdisks probieren.
@ascrnet: Kannst Du mir mal Deine Diskimages schicken, damit ich das Problem besser eingrenzen kann.
JoSch schrieb:
@ascrnet: Kannst Du mir mal Deine Diskimages schicken, damit ich das Problem besser eingrenzen kann.
Natürlich teile ich es hier mit Ihnen. „Ich werde eine Woche von der ATARI-Welt entfernt sein“. 😉

Also ich habe ein bisschen getestet. Es hängt auf jeden Fall nicht an MyDOS 4.50. Das Diskimage ist in DD formatiert.
Wenn ich in Altirra das Image direkt starte, ein zweites Image mounte, dieses in MD formatiere und DOS installiere, dann kann ich von RespeQt aus MyDos starten.
Ich gehe daher davon aus, dass hier irgendwas komisches mit dem DD-Format zu tun hat. Allerdings kann ich im Fujinet-Log die übertragenen Daten nicht sehen.
Ich muss mir hier etwas ausdenken, wie daran komme. Hat jemand eine Idee?
JoSch schrieb:
Also ich habe ein bisschen getestet. Es hängt auf jeden Fall nicht an MyDOS 4.50. Das Diskimage ist in DD formatiert. ...
Zu dem Image - Respect 4.0 Linux:
Emulation gestartet über serielles Port Backend auf 'ttyUSB0' mit NO Handshaking.
Cannot open '/Mydos 4.5d.atr': Invalid image size (184320).
Danke für den Hinweis. Das muss ich mir dann auch anschauen.
Aber hier geht es ja darum, dass das Image über Fujinet abgerufen wird. Fujinet ruft hier einfach Blöcke aus dem Image ab und bastelt sich selbst die Sektoren zusammen.
Dieses Problem taucht offensichtlich auch nur bei DD-Images auf.
Das scheint beim TNFS-Server von Fujinet auf jeden Fall zu funktionieren.
Das liegt an der unterschiedlichen Behandlung der Sektoren 1-3 im ATR.
Nach meinem Verständnis gibt es (leider) drei Varianten, sie zu speichern:
-
Nur 128 Byte -> Dateigröße 183952
-
Jeweils 256 Byte am Stück, also je 128 Byte Daten, 128 Byte $00 -> Dateigröße 184336
-
Dreimal 128 Byte Daten, gefolgt von dreimal 128 Byte $00 -> Dateigröße 184336
Die nicht akzeptierte MyDos-Datei gehört zur letzten Kategorie.
Die große Frage ist nun, ob JoSchs TNFS-Server die Daten falsch liefert oder das FujiNet die Daten falsch bearbeitet.
GoodByteXL schrieb:
JoSch schrieb:
Also ich habe ein bisschen getestet. Es hängt auf jeden Fall nicht an MyDOS 4.50. Das Diskimage ist in DD formatiert. ...
Zu dem Image - Respect 4.0 Linux:
Emulation gestartet über serielles Port Backend auf 'ttyUSB0' mit NO Handshaking.
Cannot open '/Mydos 4.5d.atr': Invalid image size (184320).
Nochmal vielen Dank für den Hinweis. Das Problem ist hier, dass das DD-Image mit Padding bei den ersten drei Sektoren arbeitet; hier in der Variante, dass das Padding nach den drei Sektoren eingefüllt wird.
Damit konnte die Überprüfungsroutine nicht umgehen. Ich habe hier einen Fix entwickelt, mit dem sich das Image auch in RespeQt öffnen lässt. Beim nächsten RC wird dieses dann einfließen.
Ich habe zum Testen das Padding entfernt und jetzt kann ich auch über Fujinet laden (getestet bisher nur mit Altirra). Da aber TNFS-Server nur die Images zur Verfügung stellen und Fujinet das Interpretieren des Images erledigt, würde ich hier das Problem suchen. Ich schaue mir bei Gelegenheit noch den Sourcecode an, vielleicht finde ich hier etwas.
Kann Respeqt eine XF-551 emulieren?
https://forums.atariage.com/topic/379480-aspeqt-or-respeqt-emulation-of-xf-551/
Both my copies of RespeQt and AspeQt aren't happy with the PERCOM block they are receiving and don't work too well. They don't seem to like the format command, either.
DjayBee schrieb:
Kann Respeqt eine XF-551 emulieren?
https://forums.atariage.com/topic/379480-aspeqt-or-respeqt-emulation-of-xf-551/
Both my copies of RespeQt and AspeQt aren't happy with the PERCOM block they are receiving and don't work too well. They don't seem to like the format command, either.
Nein, Percoms werden meines Wissens nach nicht emuliert. Die Happy-Emulation bezieht sich allerdings darauf, dass die Firmware mit emuliert wird.
Um das ganze mit Percoms und versch. Modellen der 1050 und XF551 zu machen, müsste man erstmal deutlich aufräumen.
Moin,
kann ich kopiergeschützte ATX-Images von RespeQt an eine reale Disk kopieren?
Z.B. Ballblazer - hat im Bereich um 707-719 ein paar Sektoren, die ich nicht kopiert bekomme.
Ich habe schon "Happy Warp Speed Menu 7.10" und "U.S. Copy (Happy)" versucht.
Beide Kopierprogramme können die Sektoren nicht lesen.
Bei dem RespeQt Laufwerkt D1: ist der Happy Mode an.
Muss ich eine andere Software benutzen? Oder, geht das garnicht?
Ich war mit dem Feature sehr zuversichtlich: "PRO and ATX images support in read/write mode with accurate (I hope so) protection emulation."
Grüße,
Ingo
BöserWatz schrieb:
kann ich kopiergeschützte ATX-Images von RespeQt an eine reale Disk kopieren?
Z.B. Ballblazer - hat im Bereich um 707-719 ein paar Sektoren, die ich nicht kopiert bekomme.
Hier beschreibt ebiguy, wie das (damals) funktioniert (hat):
https://forums.atariage.com/topic/284707-respeqt-42-beta/
Ob das nach den Änderungen durch JoSch noch funktioniert, weiß ich nicht. Ich habe auch nie ausprobiert ob/wie das tatsächlich funktioniert hat.
Aber was willst du mit dem langweiligen Activision-Release, das keine Animation und Musik beim Laden hat? 😁
ok - da ist ja dann schon eine gewisse Abfolge zu befolgen, um es hinzubekommen.
Aber was willst du mit dem langweiligen Activision-Release, das keine Animation und Musik beim Laden hat?
Echt, das fehlt da? Ich dachte, das wäre schon der fehlende Kopierschutz, der das hervorragende Intro verweigert.
Aber, ist rein zufällig ausgewählt. Ich möchte meine neuen Happy Clone testen - habe aber kein Original. Oder, bediene die Soft- und Hardware falsch – naja, mit der Anleitung auf AtariAge wird es wohl klappen.
Getestet habe ich das nicht. Ich kenne mich mit dem ganzen Happy-Kram auch nicht wirklich aus. Ich müsste z.B. mal ein Happy-Rom in die MegaSpeedy laden, aber naja...
An den ganzen Disk-Image-Routinen habe ich nicht viel gebastelt, da das ein heftiger Fail an strukturierter Programmierung ist, aber was solls. Eigentlich müsste alles noch funktionieren.
@Ingo: Kannst Du mir sagen, woher Du Dein Image hast, damit ich das mal testen kann.
DjayBee schrieb:
Aber was willst du mit dem langweiligen Activision-Release, das keine Animation und Musik beim Laden hat? 😁
Wenn ich deine Forenantwort nochmal lese, ist es beindruckend, dass du anhand der Kopierschutzsektoren erkennst welches Release das ist 😀
JoSch schrieb:
@Ingo: Kannst Du mir sagen, woher Du Dein Image hast, damit ich das mal testen kann.
Ballblazer kommt hier her:
https://www.a8preservation.com/#/software/release/709?tab=0
DjayBee schrieb:
Aber was willst du mit dem langweiligen Activision-Release, das keine Animation und Musik beim Laden hat? 😁
Ja das stimmt leider. Da hat Activision damals Mist gebaut. Es kommt beim booten das fette Activision Logo angeflogen.
Danach lädt die Floppy das Lucasfilm Logo. Ist das geladen, lädt die Floppy weiter und der Bildschirm wird schwarz.
Normalerweise sollten nun unter dem Lucasfilm Logo die beiden Roto-Dinger umherflitzen und dabei spielen Soundeffekte und Musik.
Vielleicht hat das einblenden des Activision Logo dort das Lucasfilm Programm durcheinander gebracht. Sind die Intro Daten vorhanden?
Das kann nur unser CSS Software Bibliothekar beantworten 😁
Alle Lucasfilm Activision Europa Versionen haben den selben Schutz auf Track 39. Zwei doppelte Sektoren und zwei Error Sektoren, einer mit Status 2 (Code #223),
der andere mit Status 5 (Code #247). Die Happy Software 6.9, 7.0 und 7.1 kann Error Sektoren mit Status 5 nicht kopieren.
Der SuperArchiver schon, aber nicht in Verbindung mit doppelten Sektoren. Einzig mit dem MS-Copy und einer Speedy 1050 kann man ein Back-Up erstellen.
Aber MS-Copy ist mit Vorsicht zu benutzen. Dieses Programm überprüft geschriebene Tracks nicht.
Ich muss das mit einer echten 1050(Happy und SA) auch mal mit RespeQt ausprobieren, wenn ich Zeit habe 🙄
Ich hatte mal wieder Zeit.
Das Zurückschreiben von kopiergeschützten Disketten wollte ich ja noch hinbekommen.
Für Ballblazer ist mir das auch gelungen.
Das geht so:
-
in RespeQt Laufwerk 1 mit CHIP mode "Happy 1050 to Chip Converter (19xx)(Marquis).atr" mounten
-
Laufwerk 2 ist eine echte 1050 mit Happy Clone
-
Booten - die echte Happy wird auf CHIP mode gewechselt
-
nun im RespeQt Laufwerk 1 "Archiver and Editor v1.2, The (198x)(Spartan Software of MN)(US).atr" mounten
-
Booten - Archiver lädt
-
nun im RespeQt Laufwerk 1 "Ballblazer (1985)(Epyx)(US)(Side A)[a][!].atx" mounten
-
kopieren
-
fertig
Nebenbei: Ballblazer lädt über RespeQt nicht - meldet "Load Error" - die Kopie auf ein echte Diskette wird aber normal geladen. 😀
Pooyan und Montezuma möchte ich auch hinbekommen.
Was ich noch versuchen wollte, probeweise nur in RespeQt zu kopieren.
Aber ich bekomme es nicht hin auf Laufwerk 2 zu schreiben.
Ich habe in beide Laufwerke eine DOS - dann starte ich "Duplicate Disk" von 1 auf 2 und sobald auf Laufwerk 2 geschrieben wird, wird aus der Disk eine "65535 sector SD hard disk".
Wie kann ich das unterbinden?
Wenn ich versuche die Happy Software zu nutzen bekomme ich in RespecQt einen Fehler gemeldet.
Umfeld: Laufwerk 1 echte Happy (naja ein Clone) mit "Happy Warp Backup rev 7.10 (1986)(Happy Computers)(US)(Side A).atr" das gebootet wird.
Laufwerk 2 ist ein simuliertes RespeQt Laufwerk mit Happy Attribut an.
Wenn das Backup-Programm (Menüpunkt 4) startet, prüft es die Laufwerke auf Geschwindigkeitsmöglichkeiten (glaube ich). Das echte Laufwerk funktionert. Das RespeQt Laufwerk meldet einen Fehler:
Geschwindigkeit des seriellen Ports ist gesetzt auf 19200.
[Gerät $00] command: $00, aux1: $00, aux2: $00 ignored. [x5]
[Disk 1] command: $77, aux1: $80, aux2: $97 ignored.
[Disk 2] Happy Configure drive with AUX1 $03, AUX2 $97
[Disk 2] Get status: $ff
[Disk 2] Happy High Speed Write memory at $8000
Daten-Frame Checksummen Fehler, erwartet 128, erhalten: 158. (0eaa492eea69ea49208a492fce8ac944212ac9472d0e0ac948286e0ac94a2822c929262842ccee2c2a2ca62c024da90eea698a4a05860ac0402ce20da4cd0024fc327700802a327700802a327700802a327700802a327700802a327700802a327700802a327700802a327700802a327700802a327700802a327700802a32770080)
[Disk 2] Sending [ERROR] to Atari
[Disk 2] Happy High Speed Write memory at $8000
Daten-Frame Checksummen Fehler, erwartet 128, erhalten: 158. (0eaa492eea69ea49208a492fce8ac944212ac9472d0e0ac948286e0ac94a2822c929262842ccee2c2a2ca62c024da90eea698a4a05860ac0402ce20da4cd0024fc327700802a327700802a327700802a327700802a327700802a327700802a327700802a327700802a327700802a327700802a327700802a327700802a32770080)
[Disk 2] Sending [ERROR] to Atari
[Disk 2] Happy High Speed Write memory at $8000
Daten-Frame Checksummen Fehler, erwartet 128, erhalten: 158. (0eaa492eea69ea49208a492fce8ac944212ac9472d0e0ac948286e0ac94a2822c929262842ccee2c2a2ca62c024da90eea698a4a05860ac0402ce20da4cd0024fc327700802a327700802a327700802a327700802a327700802a327700802a327700802a327700802a327700802a327700802a327700802a327700802a32770080)
[Disk 2] Sending [ERROR] to Atari
[Disk 2] Happy High Speed Write memory at $8000
Serieller Port Timeout beim Lesen.
[Disk 2] Sending [ERROR] to Atari
Das Backupprogramm meldet dann einen Error und kann nur beendet werden.
Kann ich das noch irgendwie anpassen? Oder, ist das ein Fehler?
Ebiguy hat damals geschrieben, dass die Happy Software über RespeQt geladen werden muss weil sie on-the-fly gepatcht wird.
Dann kann ein Boot von einer echten 1050 nicht funktionieren.
Schau mal in dem hier weiter oben von mir verlinkten AtariAge Thread. Dort könnte das stehen.
Ja - das und weiteres hatte ich schon probiert - unter dem Archiver geht es sehr gut von echter Hardware zu RespeQt und zurück sogar zwischen zwei virtuellen Laufwerken kann ich ATX Images kopieren.
Hier war noch wichtig ein ATX Image kann nur beschrieben werden, wenn es aus RespeQt erzeugt wurde.
Aber, der Trick mit dem Happy Modus funktioniert bei mir nicht. Ich bekomme im Happy Programm "Error Reading" wenn das Backup Programm gestartet wird.
Das Log sagt zwar das gepatcht wurde - der Lesefehler kommt dennoch.
[Disk 1] Happy High Speed Read Sector 397 ($18d) #1 in track 22 ($16)
Geschwindigkeit des seriellen Ports ist gesetzt auf 38730.
[Disk 1] Happy Warp Speed Software V7.1 patched on the fly to be compatible with RespeQt
Geschwindigkeit des seriellen Ports ist gesetzt auf 19200.
[Disk 1] Happy High Speed Read Sector 397 ($18d) #1 in track 22 ($16)
Geschwindigkeit des seriellen Ports ist gesetzt auf 38730.
[Disk 1] Happy Warp Speed Software V7.1 patched on the fly to be compatible with RespeQt
Geschwindigkeit des seriellen Ports ist gesetzt auf 19200.
[Disk 1] Happy High Speed Read Sector 397 ($18d) #1 in track 22 ($16)
Geschwindigkeit des seriellen Ports ist gesetzt auf 38730.
[Disk 1] Happy Warp Speed Software V7.1 patched on the fly to be compatible with RespeQt
Geschwindigkeit des seriellen Ports ist gesetzt auf 19200.
[Disk 1] Happy High Speed Read Sector 397 ($18d) #1 in track 22 ($16)
Geschwindigkeit des seriellen Ports ist gesetzt auf 38730.
[Disk 1] Happy Warp Speed Software V7.1 patched on the fly to be compatible with RespeQt
Geschwindigkeit des seriellen Ports ist gesetzt auf 19200.
[Disk 1] Happy High Speed Read Sector 397 ($18d) #1 in track 22 ($16)
Geschwindigkeit des seriellen Ports ist gesetzt auf 38730.
[Disk 1] Happy Warp Speed Software V7.1 patched on the fly to be compatible with RespeQt
Geschwindigkeit des seriellen Ports ist gesetzt auf 19200.
[Disk 1] Happy High Speed Read Sector 397 ($18d) #1 in track 22 ($16)
Geschwindigkeit des seriellen Ports ist gesetzt auf 38730.
[Disk 1] Happy Warp Speed Software V7.1 patched on the fly to be compatible with RespeQt
Geschwindigkeit des seriellen Ports ist gesetzt auf 19200.
Habe ich vielleicht noch eine andere Möglichkeit? An dem Port einen Parameter vergessen?
Ich muss hier ehrlicherweise passen, denn ebiguy hat das alles inkl. 6502-Emu damals eingebaut und für mich ist das alles böhmische Dörfer.
Mit dem Archiver habe ich nun auch Pooyan hinbekommen.
Immer Version 1.2 bei der 3.2 habe ich immer Schreibprobleme - wobei ich feststellen musste, dass eine meiner beiden Happy-Clone (Copy Data 7.0) nicht 100% läuft. Aber, der Archiver läuft besser als die Happy-Programme.
Bei dem Problem mit dem Happy-Anstarten-Trick, habe ich mit den Parametern auf dem COM-Port experimentiert. Bei der Einstellung Pokey-Devisor 7 und Handshake NONE wurde die Prüfung des Happy-Tools positiv durchlaufen.
Nur schreiben konnte ich nicht auf meiner vermutlich defekten Happy - das probiere ich noch mal mit meiner vermeitlich heilen Happy und berichte dann hier.
Was ich noch schreiben wollte: Ich habe noch einen Fehler gefunden (5.4.1.RC2) - wenn ich ein Image wechseln möchte per Diskettensymbol oder Drag&Drop und das Image bzw. Laufwerk das Archiver CHIP-Modus "an" hat, beendet sich die Software direkt und ohne Meldung. Wenn der CHIP-Modus aus ist geht ein Imagewechsel ohne Probleme.
Danke für den Hinweis. Ich probiere das aus.
Ich habe es gefixt. Im nächsten Release wird das drin sein.
So. Es ist geschehen. Ich habe die Tage ein Pull Request mit allen Änderungen in meinem Repo an das Hauptrepo geschickt und siehe da, gestern wurde alle gepullt.
Wie es mit Releases weitergeht, werden wir aber noch aushandeln müssen.
Moin und frohes Neues,
ich bin mal wieder in den Tiefen der Kopierlogik versunken.
Habe mir Qt installiert und mal ins Coding geguckt.
Nicht zu tief - aber schon so, dass ich die 6502 EMU gefunden habe - mir ist nicht wirklich klar, warum das so gelöst wurde.
JoSch schrieb:
So. Es ist geschehen. Ich habe die Tage ein Pull Request mit allen Änderungen in meinem Repo an das Hauptrepo geschickt und siehe da, gestern wurde alle gepullt.
Wie es mit Releases weitergeht, werden wir aber noch aushandeln müssen.
@Josch: Ich habe mir das Coding hier gezogen https://github.com/josch1710/RespeQt/releases - gibt es da einen neueren Stand?
Mal abgesehen von der Software: Ich habe Probleme die Ergebnisse zu reproduzieren. Mal klappt eine Kopie, mal nicht. Ich habe meine Hardware in Verdacht (die 1050er).
Gibt es noch andere Hardware, außer der Happy oder Happy Clone, die die fehlerhaften oder unlogischen Sektoren schreiben können?
Grüße,
Ingo
Frohes Neues Jahr.
Ich habe die ganze Happy-Emulation nicht geschrieben, das war ebiguy. Bei ein paar Sachen habe ich mir auch den Kopf gekratzt, aber da ich mit der Happy nichts am Hut habe und erstmal meine MegaSpeedy mit einer Happy-Firmware ausstatten müsste, habe ich mich nie darum gekümmert. Überhaupt finde ich die Idee, dass man nur eine Happy oder andere Sonderhardware emuliert komisch. Warum nicht zwei Happys, um schneller zu kopieren, z.B.
In Releases ist der aktuellste Stand.
Grüße Jochen
Den Bug "Diskwechsel bei CHIP oder HAPPY Schalter ON führt zu einem Absturz" hattest Du behoben? Da müsste es doch RC3 geben, oder?
Hm. Ich erinnere mich, dass da was war, aber ich müsste schauen, was ich bereits gemacht habe.
Ich habe mir die QT-Umgebung mal installiert - einen Fork von Deinem Projekt gezogen und versucht den Fehler zu reproduzieren. Es kam ein Fehler, aber beim Wechsel von CHIP auf HAPPY - sonst konnte ich in der Debug-Umgebung immer Images mounten/remounten.
Das Log dazu sieht so aus:
Vielleicht hilft das bei der Erinnerung.
Ich denke, die Begrenzung des Laufwerkes D1 für CHIP und HAPPY lässt sich beheben.
Aber, was mir eher Sorgen macht, ist die SIO-Kommunikation. Die klappt mal und mal nicht. Ich will da noch mal probieren, welches die korrekten Parameter sind.
Sonst findet man Fehlern, die nur auf die Kommunikation zurückzuführen sind.
@BöserWatz: Auf welchem Betriebssystem hast du gebaut?
Ich hatte mal in der Linux- und Mac-Implementierung mit Unterstützung von Hias Sachen geändert. Ich muss allerdings sagen, dass ich nicht wirklich viel Erfahrung und tiefes Wissen über serielle Programmierung in den versch. Betriebssysteme habe. Da wäre ich natürlich für Unterstützung dankbar.
Gebaut habe ich auf Win11. Auch die Tests laufen auf Win11. Kann leider nicht direkt in die Sourcen springen, da meine AntiVirenSoftware das verhindert. Ich will da in eine virtuelle Linux Umgebung wechseln.
ok - ich bin mal auf Linux (VM) gewechselt - schon erschreckend was Win11 an Ressourcen verschwendet - QT-Umgebung war in wenigen Minuten da und verbraucht ein 50stel an Platz. Habe noch mal am Port probiert - muss das aber mal mit mehreren Tests probieren. Aber, Stabilität erkauft man sich durch geringere Geschwindigkeit.
Dank Debugger:
Der Fehler mit dem Toogle von CHIP auf HAPPY rührt wohl hierher:

Die 6144 QT Meldungen haben es dann in der Windows-Version abstürzen lassen.
BöserWatz schrieb:
ok - ich bin mal auf Linux (VM) gewechselt - schon erschreckend was Win11 an Ressourcen verschwendet - QT-Umgebung war in wenigen Minuten da und verbraucht ein 50stel an Platz. Habe noch mal am Port probiert - muss das aber mal mit mehreren Tests probieren. Aber, Stabilität erkauft man sich durch geringere Geschwindigkeit.
Dank Debugger:
Der Fehler mit dem Toogle von CHIP auf HAPPY rührt wohl hierher:
Screenshot 2026-01-06 004035.png
Die 6144 QT Meldungen haben es dann in der Windows-Version abstürzen lassen.
Danke. Schickst Du mir bitte einen PR.
Bin jetzt endlich dazu gekommen, die Version 5.4.1 für Linux von hier https://github.com/josch1710/RespeQt/releases/download/r5.4.1/RespeQtLinux_5.4.1.zip zu probieren.
Die startet gar nicht. In Linux erscheint kein Prozess in der Systemüberwachung. Bleibt tot.
Tipps?
V. 5.4.0 läuft wie geschmiert.
Linux ist LM 22.3 Cn
GoodByteXL schrieb:
Bin jetzt endlich dazu gekommen, die Version 5.4.1 für Linux von hier https://github.com/josch1710/RespeQt/releases/download/r5.4.1/RespeQtLinux_5.4.1.zip zu probieren.
Die startet gar nicht. In Linux erscheint kein Prozess in der Systemüberwachung. Bleibt tot.
Tipps?
V. 5.4.0 läuft wie geschmiert.
Linux ist LM 22.3 Cn
LM heißt Linux Mint?
Muss ich mir mal auf meinem Linux anschauen.
GoodByteXL schrieb:
Bin jetzt endlich dazu gekommen, die Version 5.4.1 für Linux von hier https://github.com/josch1710/RespeQt/releases/download/r5.4.1/RespeQtLinux_5.4.1.zip zu probieren.
Die startet gar nicht. In Linux erscheint kein Prozess in der Systemüberwachung. Bleibt tot.
Tipps?
V. 5.4.0 läuft wie geschmiert.
Linux ist LM 22.3 Cn
Hast Du über RespeQt.sh gestartet? Leider musst Du aber bin/RespeQt und RespeQt.sh selbst ausführbar, wenn Du das Zip verwendest.
JoSch schrieb:
Hast Du über RespeQt.sh gestartet? Leider musst Du aber bin/RespeQt und RespeQt.sh selbst ausführbar, wenn Du das Zip verwendest.
Yep, weiß ich und hatte ich auch gemacht. Deswegen läuft ja auch die V. 5.4.0, aber die V. 5.4.1 nicht, trotz der angehängten korrekten Einstellungen:

Nach dem Starten von V 5.4.1 wird kein Prozess gestartet, im Gegensatz zu V. 5.4.0, der die Prozesse normal startet:

und dann das gewohnte Bild zeigt:

Sehr komisch. Auf meinem Linux (Elementary OS) kann ich RespeQt 5.4.1 starten.
Bekommst Du auf der Konsole irgendwelche Fehlermeldung?
JoSch schrieb:
Sehr komisch. Auf meinem Linux (Elementary OS) kann ich RespeQt 5.4.1 starten.
Bekommst Du auf der Konsole irgendwelche Fehlermeldung?
./RespeQt.sh
./RespeQt.sh: 37: /media/user/RespeQt5_R5-4-1_Linux/bin/RespeQt: Permission denied
Das kann ich nicht auflösen.
Das Programm startet nicht - weder auf der Konsole noch über die Dateiverwaltung.
Es passiert schlicht nichts. Es wird auch keine Config-Datei im Verzeichnis ZeeSoft erstellt, es wird kein Prozess gestartet - wirklich einfach nichts.
RespeQt starte ich normal nicht im Terminal - ich bin "Mausjünger".
Ein Doppelklick in der Dateiverwaltung auf RespeQt.sh erbringt die Abfrage:

Sowohl ein Klick auf "Im Terminal ausführen" als auch auf "Ausführen" startet dann RespeQt V 5.4.0. Ab da läuft es einwandfrei.
In V 5.4.1 ist es mit dem Script ebenso. Es kommt die Abfrage, aber dann ist es egal, was man auswählt. Es passiert nix mehr.
Nachtrag: Gefunden!!!
Im Verzeichnis "bin" müssen die Rechte von "RespeQt" bei Eigentümer ergänzt werden auf: "Ausführen".
Sollte ggf. bereits "ab Werk" so sein ...
ist bei Linux leider noch lange nicht so...
keine PN's mehr! Bitte per email kontaktieren! atari1450xld©mega-hz.de
Hi,
ich habe noch zu tun ... 😲
/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found
LG
dl7ukk schrieb:
Hi,
ich habe noch zu tun ... 😲
/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found
LG
Das hört sich eher nach einem Problem in Deiner Linuxinstallation an.
GoodByteXL schrieb:
[...]
Nachtrag: Gefunden!!!
Im Verzeichnis "bin" müssen die Rechte von "RespeQt" bei Eigentümer ergänzt werden auf: "Ausführen".
Sollte ggf. bereits "ab Werk" so sein ...
Ja, beide Dateien, wie ich bereits geschrieben habe 😉
JoSch schrieb:
Ja, beide Dateien, wie ich bereits geschrieben habe 😉
Ja, da war wohl ein Fettfleck auf meiner Sonnenbrille ... 😁